8fd99fb3fc8cbc2e7c37008624b80901a0914527,src/main/java/act/controller/Controller.java,Util,inferResult,#HandlerMethodMetaInfo#Object#ActionContext#boolean#,671
Before Change
* @param context the action context
* @return the rendered result
*/
public static Result inferResult(HandlerMethodMetaInfo meta, Object v, ActionContext context, boolean hasTemplate) {
if (null == v && !hasTemplate) {
return null;
} else if (v instanceof Result) {
return (Result) v;
} else if (v instanceof String) {
if (hasTemplate) {
return inferToTemplate(v, context);
}
return inferResult((String) v, context);
} else if (v instanceof InputStream) {
return inferResult((InputStream) v, context);
} else if (v instanceof File) {
return inferResult((File) v, context);
} else if (v instanceof ISObject) {
return inferResult((ISObject) v, context);
} else if (v instanceof Map) {
if (hasTemplate) {
return inferToTemplate((Map) v, context);
}
return RenderJSON.of(v);
} else if (hasTemplate && v instanceof Object[]) {
throw E.tbd("Render template with array");
} else {
H.Request req = context.req();
if (Act.isProd() && v instanceof Versioned && req.method().safe()) {
String version = ((Versioned) v)._version();
if (req.etagMatches(version)) {
return NotModified.get();
} else {
context.resp().etag(version);
After Change
return (Result)v;
}
final H.Request req = context.req();
final H.Status status = req.method() == H.Method.POST ? H.Status.CREATED : H.Status.OK;
if (Act.isProd() && v instanceof Versioned && req.method().safe()) {
processEtag(meta, v, context, req);
}